Imaginez une bibliothèque où les livres ne sont pas rangés par date d'arrivée, mais par une Clé universelle. C'est le changement de paradigme entre les approches séquentielles et conteneurs associatifs. Au lieu de parcourir un vecteur de manière linéaire (O(N)), nous utilisons un map ou ensemble pour obtenir des recherches en temps logarithmique (O(log n)).
1. La nature de l'association
Dans un map, nous stockons paires clé-valeur. La clé agit comme un index pouvant être une chaîne de caractères, un objet personnalisé ou tout type prenant en charge ordre strict faible. Un ensemble, au contraire, stocke uniquement des clés uniques, ce qui en fait l'outil idéal pour tester l'appartenance ou filtrer.
2. Ordre versus désordre
Conteneurs standards (map, ensemble) trient les clés. La norme C++11 a introduit des variantes non ordonnées (unordered_map) qui utilisent une fonction de hachage pour des performances moyennes en O(1). Recherchez le logo C++11 lorsque vous utilisez ces compartiments à haute performance.